这个 SpringBoot 电商系统值得推荐!
The following article is from CS指南 Author 大白
大家好,我是 Guide!
有很多小伙伴问我有没有实战类项目推荐,今天就来推荐一个高质量的微服务 B2B2C 电商商城系统。
废话不多说,先来看效果图。
1商城效果图
商城 Web 前端:
商城 H5 前端:
商城小程序前端:
mall4cloud小程序前端
商城后台管理系统:
当我们选择一个开源项目的时候,界面样式其实并不是主要考虑因素,只是加分项,最重要的其实是这个项目使用到的技术必须是目前比较主流的。
如果一个项目使用的是比较远古的技术的话,对于个人学习来说,这个项目几乎没有任何学习价值,对于公司使用来说,这个项目的后续维护和开发成本过高。
下面我们就来看看这个项目的技术架构是什么样的。
2项目技术架构
这个商场基于互联网目前比较主流的微服务技术架构,基于 Spring Boot + Spring Cloud Alibaba,主要用到了下面这些技术:
Nacos : 主要用于服务注册和发现,配合 Feign 实现远程服务调用。Github 地址:https://github.com/alibaba/nacos 。 Seata :一站式分布式事务解决方案,提供了 AT、TCC、SAGA 和 XA 事务模式,开箱即用。由于这个项目是微服务架构,因此,存在一个请求涉及到多个数据库的情况,需要用到 Seata 来保证分布式事务。Github 地址:https://github.com/seata/seata 。 MySQL :本地数据库。 Redis : 分布式缓存,用于提高接口的相应速度,同时减轻数据库的压力。Github 地址:https://github.com/redis/redis 。 RocketMQ :消息队列。Github 地址:https://github.com/apache/rocketmq ElasticSearch :目前最主流的搜索服务解决方案,为商城提供商品搜索功能需要用到它。Github 地址:https://github.com/elastic/elasticsearch 。 MinIO :一款开源的对象存储服务,非常适合用来存储图片、视频等静态文件。通常情况下,如果我们不选择使用阿里云、腾讯云等云厂商提供的对象存储服务的话,那 MinIO 就是一个自建云存储服务非常不错的选择。相比于老牌的 FastDFS,MinIO 或许是更好的选择。Github 地址:https://github.com/minio/minio 。 Canal :数据同步,支持将一台 MySQL 中的数据同步到其他数据源比如 ES、RocketMQ、HBase 或者另外一台 MySQL。Github 地址:https://github.com/alibaba/canal 。 Leaf :主要用于生成分布式 ID。Github 地址:https://github.com/Meituan-Dianping/Leaf 。 ......
项目技术架构图如下 :
其实这个架构图画的并不是特别好,我来给大家梳理一下:
Nginx 负责前端请求的第一层转发,Spring Cloud Gateway 写的网关负责第二层转发。 多个服务之间通过 Nacos + Feign 的形式进行调用。 商城数据存储使用的是 MySQL 数据库,有些访问频率比较高的数据会放到 Redis 中以提高响应速度,减轻数据库压力。 消息队列 RocketMQ 可以用来解耦和削峰。 MinIO 主要用于存储图片之类的文件。 Canal 主要用于同步数据库和 ES 的数据。 ......
3最后
这个项目的后端目前已经完全开源,地址:https://gitee.com/gz-yami/mall4cloud 。商城 Web 端的话,暂时还没有开源,预计后面也会开源出来。
如果大家想要学习这个项目的话,Guide 建议大家先把这个项目用到的一些技术学一学,至少也要写一些简单的 Demo。就比如说这个项目用到了 Nacos + Feign 实现远程服务调用,那你就可以先自己学一下 Nacos + Feign 的各种玩法。
好了!今天的项目推荐就到这里了。我们下期再见!
也许你还想看 | 官宣!我升级了!!! | 抄袭狗,你冬天睡觉脚必冷!!! | 用 Java 写个沙盒塔防游戏!已上架 Steam,Apple Store | 这样使用 IDEA ,效率提升10倍!| IDEA 高效使用指南 | 豆瓣 9.7!这本技术书籍直接封神了 | 阿里开源的15个顶级Java项目!!! | 面试八股文,YYDS!
简历指导/Java 学习/面试指导/面试小册,欢迎加入我的知识星球(公众号后台回复“星球”即可)。
如果本文对你有帮助的话,欢迎点赞&在看&分享,这对我继续分享&创作优质文章非常重要。感谢🙏🏻